package com.ctshk.rpc.order.season.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.ctshk.common.model.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 套票订单
 * </p>
 *
 * @author 刘蕾
 * @since 2021-03-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_season_order")
@ApiModel(value = "SeasonOrder对象", description = "套票订单")
public class SeasonOrder extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "产品id")
    private Long productId;

    @ApiModelProperty(value = "打包id(动态打包类型使用这个字段，关联t_season_dynamic_product_package表)")
    private Long packageId;

    @ApiModelProperty(value = "汇率")
    private BigDecimal exchangeRate;

    @ApiModelProperty(value = "负责人id")
    private Long chargeUserId;

    @ApiModelProperty(value = "产品类型(1 固定套票 2 动态打包)")
    private Integer productType;

    @ApiModelProperty(value = "产品名称")
    private String productName;

    @ApiModelProperty(value = "套票类型")
    private Long seasonTypeId;

    @ApiModelProperty(value = "备注")
    private String remark;
    @ApiModelProperty(value = "收据抬头")
    private String receiptTitle;

    @ApiModelProperty(value = "优惠券代码")
    private String couponCode;

    @ApiModelProperty(value = "优惠券抵扣金额")
    private BigDecimal couponDeduction;

    @ApiModelProperty(value = "优惠总金额")
    private BigDecimal totalCouponAmount;


    @ApiModelProperty(value = "会员积分抵扣(100积分抵扣1元人民币,需换算)")
    private BigDecimal integralDeduction;

    @ApiModelProperty(value = "积分")
    private Integer integral;

    @ApiModelProperty(value = "使用积分")
    private Integer usingPoints;

    @ApiModelProperty(value = "星赏会会员ID")
    private String memberId;

    @ApiModelProperty(value = "会员查询类型(1:手机号查询,2:证件号码查询)")
    private Integer memberQueryType;

    @ApiModelProperty(value = "会员查询证件类型(根据CRM提供的证件类型列表)")
    private Integer memberQueryCertificatesType;

    @ApiModelProperty(value = "会员查询编码(根据memberQueryType判断)")
    private String memberQueryCode;

    @ApiModelProperty(value = "会员类型")
    private String memberType;

    @ApiModelProperty(value = "出发日期")
    private LocalDate departDate;

    @ApiModelProperty(value = "套票金额")
    private BigDecimal seasonAmount;

    @ApiModelProperty(value = "保险费用")
    private BigDecimal insuranceAmount;

    @ApiModelProperty(value = "保险数量")
    private Integer insuranceNumber;

    @ApiModelProperty(value = "印花税费用")
    private BigDecimal stampTaxAmount;

    @ApiModelProperty(value = "印花税数量")
    private Integer stampTaxNumber;

    @ApiModelProperty(value = "订单总额")
    private BigDecimal orderAmount;


    @ApiModelProperty(value = "销售单号")
    private String orderNumber;

    @ApiModelProperty(value = "付款状态    1待付款  2 已付款 3 已取消")
    private Integer paymentStatus;

    @ApiModelProperty(value = "预订状态   1待预订  2 预订成功 3 预订失败")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;

    @ApiModelProperty(value = "来源")
    private Integer source;

    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;

    @ApiModelProperty(value = "应收金额")
    private BigDecimal receivableAmount;

    @ApiModelProperty(value = "已退款金额")
    private BigDecimal refundedAmount;

    @ApiModelProperty(value = "销售方式(1：单品销售 2：打包销售)")
    private Integer salesMethods;

    @ApiModelProperty(value = "套票的选择的产品 1:机票 2:船票  3:酒店 4:巴士 5:火车票 6:景点门票 7:当地玩乐 8商品 多个以逗号分隔,")
    private String seasonPackageProductFlag;

    @ApiModelProperty(value = "销售人员id")
    private Long salesmanId;

    @ApiModelProperty(value = "销售人员名称")
    private String salesmanName;

    @ApiModelProperty(value = "联系人姓")
    private String surname;

    @ApiModelProperty(value = "联系人名")
    private String name;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机")
    private String contactMobile;

    @ApiModelProperty(value = "联系人手机区号id")
    private Long contactMobileAreaCodeId;

    @ApiModelProperty(value = "联系人手机区号")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "称谓(1:先生;2:女士;3:小姐;4:男童;5:女童)")
    private Integer appellation;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;

    @ApiModelProperty(value = "C端下单用户id")
    private Long userId;


}
